In processor systems, a processor or central processing unit (CPU) accesses memory through a memory controller. When the CPU executes a multi-thread environment, multiple threads can simultaneously generate memory access requests to access memory contents. Each memory access request is sent by the CPU to the memory controller so that the memory controller can translate the requests into physical memory locations and grant access to such physical memory locations. In multi-core processor systems, simultaneous use of multiple CPU cores can multiply the number of simultaneous memory requests in the system. In some instances, processor systems are provided with multiple memory controllers to handle accesses to respective memory devices. In any of these types of processor systems, the quantity of memory access requests generated by threads can be overwhelming for the memory controller(s) and the physical memory that they control and may, in some instances, create memory access congestion at the memory controller(s).